package com.mastercard.assets.jpa;

import java.io.Serializable;
import javax.persistence.*;
import java.sql.Timestamp;
import java.util.List;


/**
 * The persistent class for the tbl_cuenta database table.
 * 
 */
@Entity
@Table(name="tbl_cuenta")
public class TblCuenta implements Serializable {
	private static final long serialVersionUID = 1L;
	private int cveCuenta;
	private String descripcion;
	private Timestamp fechaAlta;
	private String nombre;
	private byte status;
	private TblTipoCuenta tblTipoCuenta;
	private List<TblUsuario> tblUsuarios;
	private List<TblAssetSolRespuesta> tblAssetSolRespuestas;
	private List<TblAssetSolicitud> tblAssetSolicituds;
	private List<TblCuentaPaquete> tblCuentaPaquetes;
	private List<TblCampania> tblCampanias;
	private TblTipoCuentaReal tblTipoCuentaReal;
        private List<TblDomestic> tblDomestic;

    public TblCuenta() {
    }


	@Id
	@GeneratedValue(strategy=GenerationType.IDENTITY)
	@Column(name="cve_cuenta", unique=true, nullable=false)
	public int getCveCuenta() {
		return this.cveCuenta;
	}

	public void setCveCuenta(int cveCuenta) {
		this.cveCuenta = cveCuenta;
	}


	@Column(nullable=false, length=2048)
	public String getDescripcion() {
		return this.descripcion;
	}

	public void setDescripcion(String descripcion) {
		this.descripcion = descripcion;
	}


	@Column(name="fecha_alta", nullable=false)
	public Timestamp getFechaAlta() {
		return this.fechaAlta;
	}

	public void setFechaAlta(Timestamp fechaAlta) {
		this.fechaAlta = fechaAlta;
	}


	@Column(nullable=false, length=255)
	public String getNombre() {
		return this.nombre;
	}

	public void setNombre(String nombre) {
		this.nombre = nombre;
	}


	@Column(nullable=false)
	public byte getStatus() {
		return this.status;
	}

	public void setStatus(byte status) {
		this.status = status;
	}


	//bi-directional many-to-one association to TblTipoCuenta
    @ManyToOne
	@JoinColumn(name="cve_tipo_cuenta", nullable=false)
	public TblTipoCuenta getTblTipoCuenta() {
		return this.tblTipoCuenta;
	}

	public void setTblTipoCuenta(TblTipoCuenta tblTipoCuenta) {
		this.tblTipoCuenta = tblTipoCuenta;
	}
	

	//bi-directional many-to-many association to TblUsuario
    @ManyToMany
	@JoinTable(
		name="tbl_usuario_cuenta"
		, joinColumns={
			@JoinColumn(name="cve_cuenta", nullable=false)
			}
		, inverseJoinColumns={
			@JoinColumn(name="cve_usuario", nullable=false)
			}
		)
	public List<TblUsuario> getTblUsuarios() {
		return this.tblUsuarios;
	}

	public void setTblUsuarios(List<TblUsuario> tblUsuarios) {
		this.tblUsuarios = tblUsuarios;
	}
	

	//bi-directional many-to-one association to TblAssetSolRespuesta
	@OneToMany(mappedBy="tblCuenta")
	public List<TblAssetSolRespuesta> getTblAssetSolRespuestas() {
		return this.tblAssetSolRespuestas;
	}

	public void setTblAssetSolRespuestas(List<TblAssetSolRespuesta> tblAssetSolRespuestas) {
		this.tblAssetSolRespuestas = tblAssetSolRespuestas;
	}
	

	//bi-directional many-to-one association to TblAssetSolicitud
	@OneToMany(mappedBy="tblCuenta")
	public List<TblAssetSolicitud> getTblAssetSolicituds() {
		return this.tblAssetSolicituds;
	}

	public void setTblAssetSolicituds(List<TblAssetSolicitud> tblAssetSolicituds) {
		this.tblAssetSolicituds = tblAssetSolicituds;
	}
	

	//bi-directional many-to-one association to TblCuentaPaquete
	@OneToMany(mappedBy="tblCuenta")
	public List<TblCuentaPaquete> getTblCuentaPaquetes() {
		return this.tblCuentaPaquetes;
	}

	public void setTblCuentaPaquetes(List<TblCuentaPaquete> tblCuentaPaquetes) {
		this.tblCuentaPaquetes = tblCuentaPaquetes;
	}
	

	//bi-directional many-to-one association to TblCampania
	@OneToMany(mappedBy="tblCuenta")
	public List<TblCampania> getTblCampanias() {
		return this.tblCampanias;
	}

	public void setTblCampanias(List<TblCampania> tblCampanias) {
		this.tblCampanias = tblCampanias;
	}
	

	//bi-directional many-to-one association to TblTipoCuentaReal
    @ManyToOne
	@JoinColumn(name="cve_tipo_cuenta_real", nullable=false)
	public TblTipoCuentaReal getTblTipoCuentaReal() {
		return this.tblTipoCuentaReal;
	}

	public void setTblTipoCuentaReal(TblTipoCuentaReal tblTipoCuentaReal) {
		this.tblTipoCuentaReal = tblTipoCuentaReal;
	}
        
        //bi-directional many-to-one association to TblDomestic
	@OneToMany(mappedBy="tblCuenta")
	public List<TblDomestic> getTblDomestic() {
		return this.tblDomestic;
	}

	public void setTblDomestic(List<TblDomestic> tblDomestic) {
		this.tblDomestic = tblDomestic;
	}
	
}